package com.shujia.mr.sortPartition;

import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;

public class SortPartitionMapper extends Mapper<LongWritable, Text, Text, Text> {
    /*

        将不同学生年龄的数据写入到不同的文件中，并对相同班级的学生的分数进行排序

        读取数据：
            从ReduceJoin结果读取：
                1500100008	符半双,22,女,理科六班,363
            对其进行做数据切分，切分后，需要对班级进行分组，要求以学生的班级作为Key 其他信息作为Value
                Value不会再Map缓冲区中进行做排序
     */

    @Override
    protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, Text>.Context context) throws IOException, InterruptedException {
//        super.map(key, value, context);

        String[] split = value.toString().split("\t");
        if (split.length >= 2){
            String id = split[0];
            String[] cols = split[1].split(",");
            if (cols.length >= 3){
                context.write(new Text(cols[3]), value);
            }else {
                System.out.println("数据错误："+value);
            }
        }else {
            System.out.println("数据错误："+value);
        }
    }
}
